Calendar applications are software applications comprising an electronic calendar. In addition to providing a calendar functionality, calendar applications may assist in managing events and dates, may comprise address books and integrated e-mail clients. They assist in organizing meetings by providing a meeting request functionality for inviting multiple persons to meetings and telephone conferences. Microsoft Outlook, for example, provides the user with means to invite one or more potential participants to join a meeting via a meeting request e-mail sent to the e-mail addresses of the invited persons.
A core limitation of current calendar applications is the fact that they are decoupled from the events of the real world they are supposed to help organizing. If an event or an activity in the ‘real world’ has to be postponed or modified, these changes usually have to be entered in the calendar application manually in order to update the data objects in the electronic calendar resembling those events of the real world. The multitude of manual steps which have to be exercised in order to synchronize the events in the electronic calendar (the data objects) with the events in the real world costs considerable time and effort and may lead to errors. In addition, many tasks have to be manually exercised repeatedly, e.g. the booking of train tickets, the booking of a table in a restaurant or the search for trip accompanies with the help of a trip sharing service. In particular for uniformly executed, repeated tasks, the automated execution of the corresponding services and an automated synchronization of the service with the calendar application would highly be appreciated by many users of calendar applications.
In the following, the term ‘event’ refers to data objects being stored in, written to or read from an electronic calendar of a calendar application, the data objects representing an event in the real world. The data object comprises data being adapted to specify an event. For example, an event in an electronic calendar may comprise a starting time, an ending time, a location or the subject. The data object can be manipulated by the commands of a programming language. An event can be a singular event or a recurring event comprising a particular recurrence pattern.
As the calendar applications currently in use are not able to communicate with services assisting in organizing events such as trip events or business appointments automatically, the user currently fulfils the function of a human interface between the calendar application and the services: the user has to remember multiple passwords, log into multiple services in order to book flights, order taxies or buy train tickets. While the user exercises a task, e.g. buys a train ticket, he is notified about the actual departure and arrival time of the chosen connection. This information in the next step has to be entered by the user in the electronic calendar manually.
The tasks mentioned in the previous examples commonly and repeatedly occur in business as well as private life but currently no adequate solution exists to execute them automatically, thereby saving working time, preventing the introduction of errors and ensuring that the electronic calendar is up-to-date, synchronized with the real world and free of inconsistencies.